﻿create or replace function public.agregar_empresa
(
	IN xnum_adherente varchar,
	IN xnombre varchar,
	IN xcod_cartera varchar,
	IN xnom_experto varchar,
	IN xrazon_social varchar,
	IN xano_de_adhesion timestamp,
	IN xsegmentacion varchar,
	IN xholding varchar,
	IN xestrategica varchar,
	IN xsituacion varchar,
	IN xmulti_region varchar,
	IN xcasa_matriz varchar,
	IN xnum_centros_trabajo varchar,
	IN xmasa_sum_metropolitana varchar,
	IN xmasa_sum_nacional varchar,
    IN xplanes_de_cuenta varchar,
    IN xplanes_de_trabajo varchar,
    IN xfirma_de_planes varchar,
    IN xsistema_de_gestion varchar,
    IN xetapa_sistema_gestion varchar,
	IN xfirma_protocolo timestamp,
    IN xnum_cphs varchar,
    IN xnum_cphs_certificado varchar,
    IN xnum_cphs_bronce varchar,
    IN xnum_cphs_plata varchar,
    IN xnum_cphs_oro varchar,
    IN xprexor varchar ,
    IN xprexor_etapa varchar,
    IN xprexor_texto varchar,
    IN xplanesi varchar,
    IN xplanesi_etapa varchar,
    IN xplanesi_texto varchar,
	IN xasbesto varchar,
    IN xasbesto_etapa varchar,
    IN xasbesto_texto varchar,
    IN xhipobaria varchar,
    IN xhipobaria_etapa varchar,
    IN xhipobaria_texto varchar,
    IN xradiaciones varchar,
    IN xradiaciones_etapa varchar,
    IN xradiaciones_texto varchar,
    IN xasma varchar,
    IN xasma_etapa varchar,
    IN xasma_texto varchar,
    IN xsolventes varchar,
    IN xsolventes_etapa varchar,
    IN xsolventes_texto varchar,
	IN xmetales varchar,
    IN xmetales_etapa varchar,
    IN xmetales_texto varchar,
    IN xoxido varchar,
    IN xoxido_etapa varchar,
    IN xoxido_texto varchar,
    IN xplaguicida varchar,
    IN xplaguicida_etapa varchar,
    IN xplaguicida_texto varchar,
    IN xpsicosociales varchar,
    IN xpsicosociales_etapa varchar,
    IN xpsicosociales_texto varchar,
    IN xmmc varchar,
    IN xmmc_etapa varchar,
    IN xmmc_texto varchar,
    IN xtmert varchar,
    IN xtmert_etapa varchar,
    IN xtmert_texto varchar,
    IN xradiacion_uv varchar,
    IN xradiacion_uv_etapa varchar,
    IN xradiacion_uv_texto varchar,
    IN xultima_visita_experto timestamp,
    IN xultima_visita_director timestamp,
    IN xultima_visita_gtte timestamp,
    IN xultima_visita_alta_gerencia timestamp,
    IN xreporte_visita varchar,
    IN xriesgo_de_fuga varchar,
    IN xreclamo_ultimo_periodo timestamp,
    IN xparticipacion_mesa_trabajo varchar,
	OUT numerror varchar,
	OUT msjerror varchar
) returns record as

$body$

    

	begin	
		
		numerror := 0;
		msjerror := '';

		insert into empresa
		(
			num_adherente,
			nombre,
			cod_cartera,
			nom_experto,
			razon_social,
			ano_de_adhesion,
			segmentacion,
			holding,
			estrategica,
			situacion,
			multi_region,
			casa_matriz,
			num_centros_trabajo,
			masa_sum_metropilitana ,
			masa_sum_nacional ,
			planes_de_cuenta ,
			planes_de_trabajo ,
			firma_de_planes ,
			sistema_de_gestion ,
			etapa_sistema_gestion ,
			firma_protocolo ,
			num_cphs ,
			num_cphs_certificado ,
			num_cphs_bronce ,
			num_cphs_plata ,
			num_cphs_oro ,
			prexor,
			prexor_etapa ,
			prexor_texto ,
			planesi ,
			planesi_etapa ,
			planesi_texto ,
			asbesto,
			asbesto_etapa,
			asbesto_texto,
			hipobaria ,
			hipobaria_etapa ,
			hipobaria_texto ,
			radiaciones ,
			radiaciones_etapa ,
			radiaciones_texto ,
			asma ,
			asma_etapa ,
			asma_texto ,
			solventes ,
			solventes_etapa ,
			solventes_texto ,
			metales,
			metales_etapa,
			metales_texto,
			oxido ,
			oxido_etapa ,
			oxido_texto ,
			plaguicida ,
			plaguicida_etapa ,
			plaguicida_texto ,
			psicosociales ,
			psicosociales_etapa ,
			psicosociales_texto ,
			mmc ,
			mmc_etapa ,
			mmc_texto ,
			tmert ,
			tmert_etapa ,
			tmert_texto ,
			radiacion_uv ,
			radiacion_uv_etapa ,
			radiacion_uv_texto ,
			ultima_visita_experto,
			ultima_visita_director,
			ultima_visita_gtte,
			ultima_visita_alta_gerencia,
			reporte_visita ,
			riesgo_de_fuga ,
			reclamo_ultimo_periodo,
			participacion_mesa_trabajo 
		)
        values
		(
			xnum_adherente,
			xnombre,
			xcod_cartera,
			xnom_experto,
			xrazon_social,
			xano_de_adhesion,
			xsegmentacion,
			xholding,
			xestrategica,
			xsituacion,
			xmulti_region,
			xcasa_matriz,
			xnum_centros_trabajo,
			xmasa_sum_metropolitana,
			xmasa_sum_nacional,
			xplanes_de_cuenta,
			xplanes_de_trabajo,
			xfirma_de_planes,
			xsistema_de_gestion,
			xetapa_sistema_gestion,
			xfirma_protocolo,			
			xnum_cphs,
			xnum_cphs_certificado,
			xnum_cphs_bronce,
			xnum_cphs_plata,
			xnum_cphs_oro,
			xprexor ,
			xprexor_etapa,
			xprexor_texto,
			xplanesi,
			xplanesi_etapa,
			xplanesi_texto,
			xasbesto,
			xasbesto_etapa,
			xasbesto_texto,
			xhipobaria,
			xhipobaria_etapa,
			xhipobaria_texto,
			xradiaciones,
			xradiaciones_etapa,
			xradiaciones_texto,
			xasma,
			xasma_etapa,
			xasma_texto,
			xmetales,
			xmetales_etapa,
			xmetales_texto,
			xsolventes,
			xsolventes_etapa,
			xsolventes_texto,
			xoxido,
			xoxido_etapa,
			xoxido_texto,
			xplaguicida,
			xplaguicida_etapa,
			xplaguicida_texto,
			xpsicosociales,
			xpsicosociales_etapa,
			xpsicosociales_texto,
			xmmc,
			xmmc_etapa,
			xmmc_texto,
			xtmert,
			xtmert_etapa,
			xtmert_texto,
			xradiacion_uv,
			xradiacion_uv_etapa,
			xradiacion_uv_texto,
			xultima_visita_experto,
			xultima_visita_director,
			xultima_visita_gtte,
			xultima_visita_alta_gerencia,
			xreporte_visita,
			xriesgo_de_fuga,
			xreclamo_ultimo_periodo,
			xparticipacion_mesa_trabajo
		);

       
        return;

		exception
			when others then
				numerror := sqlstate;
				msjerror := '[agregar_empresa] error al crear empresa(sql) ' ||sqlerrm;
				return;	
	end;
$body$
language 'plpgsql'